import psutil
import datetime
import time
#内存
def memory():
    mem = psutil.virtual_memory()
    # 系统总计内存
    zj = float(mem.total) / 1024 / 1024 / 1024
    # 系统已经使用内存
    ysy = float(mem.used) / 1024 / 1024 / 1024
    # 系统空闲内存
    kx = float(mem.free) / 1024 / 1024 / 1024
    print('系统总计内存:%d.4GB' % zj)
    print('系统已经使用内存:%d.4GB' % ysy)
    print('系统空闲内存:%d.4GB' % kx)
#memory()
# cpu
def cpu():
    #显示cpu所有逻辑信息
    print(psutil.cpu_times(percpu=True))
    # 查看cpu逻辑个数的信息
    print(u"逻辑CPU个数: %s" % psutil.cpu_count())
    # 查看cpu物理个数的信息
    print(u"物理CPU个数: %s" % psutil.cpu_count(logical=False))
    #CPU的使用率
    cpu = (str(psutil.cpu_percent(1))) + '%'
    print(u"cup使用率: %s" % cpu)
#cpu()
# 磁盘
def disk():
    part = psutil.disk_partitions()
    for i in part:
        print(i)
    dk = psutil.disk_usage('/')
    print(dk)
    #总磁盘
    total = dk.total / 1024 / 1024 / 1024
    used = dk.used / 1024 / 1024 / 1024
    free = dk.free / 1024 / 1024 / 1024
    print('系统总计磁盘:%d.3GB' % total)
    print('系统已经使用磁盘:%d.3GB' % used)
    print('系统空闲磁盘:%d.3GB' % free)
    print(u"磁盘使用率: %s%%" % dk.percent)
    # 获取磁盘总的io个数，读写信息
    print(psutil.disk_io_counters())
    """
        read_count 读IO数
        write_count 写IO数
        read_bytes 读IO字节数
        write_bytes写IO字节数
        read_time磁盘读时间
        write_time磁盘写时间
    """
#disk()
# 网络
def net():
    # 获取网络总IO信息
    print(psutil.net_io_counters())
    # 发送数据包
    print("发送数据字节:", psutil.net_io_counters().bytes_sent,"bytes")
    #接收数据包
    print("接收数据字节:",psutil.net_io_counters().bytes_recv,"bytes")
    # 输出网络每个接口信息
    net_counter = psutil.net_io_counters(pernic=True)
    for i in net_counter:
        print("网卡："+i+" ,网卡信息：",net_counter[i])
#net()
# 获取网速
def netspeed():
    s1 = psutil.net_io_counters(pernic=True)['en0']
    time.sleep(1)
    s2 = psutil.net_io_counters(pernic=True)['en0']
    result = s2.bytes_recv - s1.bytes_recv
    print(str('%d' % (result / 1024)) + 'kb/s')
#netspeed()
# 系统开机时间
# 转换成自然时间格式
print(datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S"))
#获取当前系统用户登录信息
users = psutil.users()
for i in users:
    print(i)

